package la.iok.hzsvn.lewin.movie.service;

import la.iok.hzsvn.lewin.movie.core.Token;
import la.iok.hzsvn.share.annotations.NotNull;
import la.iok.hzsvn.share.annotations.Nullable;

/**
 * pc服务器本地剧本列表。由pc服务器上传然后记录在redis中。PAD请求剧本列表时可以携带参数表明是否需要排除pc服务器中已经保存的本地剧本
 */
public interface DeviceLocalMovieService {
    /**
     * pc服务器上传本地剧本列表
     * @param token pc服务器设备的令牌
     * @param movieIds 剧本列表。id保存的为剧本id而不是剧本实例id
     */
    void updateMovieList(Token token, Long[] movieIds);

    /**
     * 查询pc服务器的本地剧本列表
     * @param code pc服务器设备码
     * @return 本地剧本列表
     */
    Long[] loadMovieList(@Nullable String code);

    /**
     * 删除设备的剧本列表
     * @param code 设备码
     */
    void remove(@NotNull String code);
}
